""" Package PIRT

Python Image Registration Toolkit.

This package provides functionality for image registration.

Image registration itself requires several image processing 
techniques and data types, which are also included in this 
package. These include:
  * pypoints.py
    classes Point, Pointset, Aarray (anisotropic array), Quaternion
  * gaussfun.py
    function for Gaussian smoothing and derivatives, image pyramid class
  * interp.py
    interpolation of 1D, 2D and 3D data (nearest, linear, and various
    spline interpolants)
  * splinegrid.py
    Defines a B-spline grid class (for data up to three dimensions) and 
    a class to describe a deformation grid (consisting of a B-spline grid
    for each dimension)

"""

# Import ssdf and pypoints
from visvis import ssdf
from visvis.pypoints import Point, Pointset, Aarray
from visvis.pypoints import is_Point, is_Pointset, is_Aarray

from pirt.gaussfun import (  gaussiankernel, gfilter, gfilter2,
                        diffusionkernel, diffuse, diffuse2,
                        ScaleSpacePyramid)

from pirt.interpolation import get_cubic_spline_coefs, meshgrid
from pirt.interpolation import interp, project, ainterp, aproject
from pirt.interpolation import deform_forward, deform_backward, make_samples_absolute
from pirt.interpolation import resize, imresize, zoom, imzoom, SliceInVolume

from pirt.splinegrid import SplineGrid, GridContainer, FieldDescription, FD
from pirt.deformation import (Deformation, DeformationIdentity, 
                               DeformationGrid, DeformationField,
                               DeformationGridForward, DeformationFieldForward,
                               DeformationGridBackward, DeformationFieldBackward)

from randomDeformations import create_random_deformation, RandomDeformations

# Prevent loading scipy.linalg
#from fitting import fit_lq1, fit_lq2

from apps import SplineByHand, DeformByHand

# Import all registration objects
from reg import *
